//Version.h
//Version Class Linker
/*
Nathan Currier / Rideliner
	nathan.currier@gmail.com
	rideliner.uni.cc
ColorCoded
	http://code.google.com/p/colorcoded/
*/

/* Version Class
!!! _* is the name of the Version object
!!! __* is an alternate Version object

Define:
	Version _*;
Set Constructor:
	Version _*(int, int, int, int)
Copy Constructor:
	Version _*(&Version);
Set: Individual Parts
	_*.set(int, int, int, int);
Copy:
	_* = __*;
Get A:
	int = _*.get_a();
Set A:
	_*.get_a(int);
Get B:
	int = _*.get_b();
Set B:
	_*.get_b(int);
Get C:
	int = _*.get_c();
Set C:
	_*.set_c(int);
Get D:
	int = _*.get_d();
Set D:
	_*.set_d(int);
Destructor: (Virtual)
	~_*;
*/

/*
 How the Version Works
////////A.B.C.D////////
A - Major Update #
B - Minor Update #
C - Odd # = Beta
  - Even # = Release
D - Total # of Updates
*/

#ifndef _VERSION_
#define _VERSION_

#include <string>
using namespace std;

class Version
{
	int V_a, V_b, V_c, V_d; //Version parts
	
public:
	Version(void);
	Version(int, int, int, int);
	Version(Version&);
	~Version(void);
	void set(int, int, int, int);
	string get_vers(string, bool = false);
	int get_a(void);
	void set_a(int);
	int get_b(void);
	void set_b(int);
	int get_c(void);
	void set_c(int);
	int get_d(void);
	void set_d(int);
};

#endif //_VERSION_